const mongoose=require('../db/mongodb.js');

// 对网站配置表的操作
const schema=mongoose.Schema({
    companyName:{
        type:String,//定义类型
        required:[true,'分类名称不能为空'],//定义验证规则，这个字段不能为空，必填
        minLength:[2,'分类名称的最小长度为2个字符'],//最小长度
        maxLength:[20,'分类名称的最大长度为20个字符'],//最大长度
        trim:true ,//去除字符串两边的空格
    },
    address:{
        type:String,//定义类型
        required:[true,'公司地址不能为空'],//定义验证规则，这个字段不能为空，必填
        minLength:[5,'公司地址的最小长度为5个字符'],//最小长度
        maxLength:[100,'公司的最大长度为100个字符'],//最大长度
        trim:true ,//去除字符串两边的空格
    },
    phoneNumber:{
        type:String,//定义类型
        required:[true,'电话号码不能为空'],//定义验证规则，这个字段不能为空，必填
        minLength:[11,'电话号码长度必须为11个字符'],//最小长度
        maxLength:[11,'电话号码长度必须为11个字符'],//最大长度
        trim:true ,//去除字符串两边的空格
    },
    email:{
        type:String,//定义类型
        required:[true,'邮箱信息不能为空'],//定义验证规则，这个字段不能为空，必填

        minLength:[5,'邮箱信息的最小长度为5个字符'],//最小长度
        maxLength:[100,'邮箱信息的最大长度为100个字符'],//最大长度
        validate:{
            validator:v=> {
                //v是要验证的值  返回布尔值
                return /^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$/.test(v);
            },
            message:'输入的邮箱不符合验证规则! 邮箱地址必须为xxxx@xx.xx 形式'
        },
        trim:true ,//去除字符串两边的空格
    },
    zipCode:{
        type:String,//定义类型
        required:[true,'邮编不能为空'],//定义验证规则，这个字段不能为空，必填
        minLength:[6,'邮编的长度为6个字符'],//最小长度
        maxLength:[6,'邮编的长度为6个字符'],//最大长度
        trim:true ,//去除字符串两边的空格
    },
    companyPic:String,

});
/* mongoose.model 可以接受第三个参数，如果传递了第三个参数，代表实际的表名，不以第一个为准 */
const contactModel=mongoose.model('Contact',schema,'contact');
contactModel.fields={
    companyName:'公司名称',
    address:'地址',
    phoneNumber:'手机号',
    email: '邮箱',
    zipCode: '邮编',
    companyPic: '公司图片',
}
module.exports=contactModel;